package com.phiture.erp.produce.dal.pojo.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 生产入库-包含成品，半成品 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ErpProduceInRespVO {

    @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25811")
    @ExcelProperty("ID")
    private Long id;

    @Schema(description = "生产入库单号", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("生产入库单号")
    private String produceInNo;

    @Schema(description = "类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("类型")
    private String type;

    @Schema(description = "状态 ", example = "1")
    @ExcelProperty("状态 ")
    private Integer status;

    private String statusName;

    @Schema(description = "业务日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("业务日期")
    private LocalDateTime bizDate;

    @Schema(description = "备注", example = "你猜")
    @ExcelProperty("备注")
    private String remark;

    @Schema(description = "生产组织")
    @ExcelProperty("生产组织")
    private Long produceDept;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    private Long creatorId;

    private String creatorName;

    @Schema(description = "源单单号")
    @ExcelProperty("源单单号")
    private String sourceBillNo;

    // ---------------------入库明细---------------------

    /**
     * ID
     */
    @Schema(description = "生产入库明细ID")
    private Long itemId;
    /**
     * 生产入库ID
     */
    @Schema(description = "生产入库ID")
    private Long produceInId;
    /**
     * 物料ID
     */
    @Schema(description = "物料")
    private Long materialId;
    /**
     * 物料名称
     */
    @Schema(description = "物料名称")
    @ExcelProperty("物料名称")
    private String materialName;
    /**
     * 物料编码
     */
    @Schema(description = "物料编码")
    @ExcelProperty("物料编码")
    private String materialNumber;

    @Schema(description = "规格")
    @ExcelProperty("规格")
    private String model;
    /**
     * 入库数量
     */
    @Schema(description = "数量")
    @ExcelProperty("数量")
    private BigDecimal qty;
    /**
     * 最终确认数量
     */
    @Schema(description = "最后确认数量")
    @ExcelProperty("最后确认数量")
    private BigDecimal finalQty;
    /**
     * 仓库ID
     */
    @Schema(description = "仓库ID")
    @ExcelProperty("仓库ID")
    private Long warehouseId;
    /**
     * 备注
     */
    @Schema(description = "备注")
    @ExcelProperty("备注")
    private String itemRemark;
    /**
     * 单位
     */
    @Schema(description = "单位")
    @ExcelProperty("单位")
    private String unitName;

}